<?php

// +----------------------------------------------------------------------
// |ZBPHP[基于ThinkPHP5.1开发]
// +----------------------------------------------------------------------
// | Copyright (c) 2016-2019 http://www.benbenwangluo.com
// +----------------------------------------------------------------------
// | Author 似水星辰 [ 2630481389@qq.com ]
// +----------------------------------------------------------------------
// | 中犇软件 技术六部 出品
// +----------------------------------------------------------------------
namespace app\customer\model;

use think\Model;

/**
 * 多店铺客服系统
 * 店铺管理
 * @author 晓风<215628355@qq.com>
 * @date 2021-5-26 9:17:56
 */
class Shop extends Model {

    // 设置当前模型对应的完整数据表名称
    protected $table = '__CUSTOMER_SHOP__';
    // 自动写入时间戳
    protected $autoWriteTimestamp = true;
 

    /**
     * 获取文档列表
     * @param mixed $map 筛选条件
     * @param mixed $order 排序
     * @return mixed
     * @author 晓风<215628355@qq.com>
     */
    public static function getList($map = [], $order = []) {
        return self::where($map)
                        ->order($order)
                        ->paginate();
    }

    
     /**
     * 检测有无注册门店
     * @author 晓风<215628355@qq.com>
     * @param int $store_id 
     * @return type
     */
    public static function checkBind(int $store_id ){
        return self::where("store_id",$store_id)->find();
    }
    /**
     * 注册门店到客服系统
     * @author 晓风<215628355@qq.com>
     * @param int $store_id 店铺ID
     * @param array $param 可选参数
     * @param string $param.store_name 店铺名称
     * @param int|string $param.store_logo 店铺LOGO
     * @param int $param.member_id 管理员ID
     * @param string $param.greeting 问候语
     * @param string $param.service_date  营业时间 如9:00-18:00
     * @param string $param.service_phone 客服电话
     * @return self
     * @throws \Exception
     */    
    public static function register(int $store_id,array $param = [] , $bind = false){        
        $param["store_id"] = $store_id;
        $param["status"]   = 1;
        $check =  self::checkBind($store_id);
        if(!$check ){
            $res = self::create($param);   
            $res = $res ? true : false;
        }   else{
            $res = self::where("store_id",$store_id)->update($param); 
            $res = $res === false ? false : true;
        } 
        if(!$res){
            throw new \Exception("注册门店失败");
        }    
        //可附加绑定一个客服如店主
        if($bind && !empty($param['member_id']) ){
            $res =  $check ? Customer::checkBind($store_id,$param['member_id']) : null; 
            if(!$res ){
                Customer::create([ "store_id"=>$store_id, "member_id"=>$param['member_id']]);
            }   
        }   
        return true;
    }
    
    /**
     * 解散门店
     * @param int $store_id
     */
    public static function delInfo(int $store_id){
        self::where("store_id",$store_id)->delete();
        Customer::where("store_id",$store_id)->delete();
        Chat::where("store_id",$store_id)->delete();
        Session::where("store_id",$store_id)->delete();
    }
}
